home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Menus.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  21.4 KB  |  611 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Menus.p
  3.  
  4.      Contains:    Menu Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8.1
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Menus;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MENUS__}
  28. {$SETC __MENUS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MenusIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __APPLEEVENTS__}
  35. {$I AppleEvents.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __CONDITIONALMACROS__}
  38. {$I ConditionalMacros.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EVENTS__}
  41. {$I Events.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __PROCESSES__}
  44. {$I Processes.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __TEXTCOMMON__}
  47. {$I TextCommon.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __MACTYPES__}
  50. {$I MacTypes.p}
  51. {$ENDC}
  52. {$IFC UNDEFINED __QUICKDRAW__}
  53. {$I Quickdraw.p}
  54. {$ENDC}
  55.  
  56.  
  57. {$PUSH}
  58. {$ALIGN MAC68K}
  59. {$LibExport+}
  60.  
  61. {——————————————————————————————————————————————————————————————————————————————————————}
  62. {    • Menu Types (for Appearance 1.0 and later)                                            }
  63. {——————————————————————————————————————————————————————————————————————————————————————}
  64.  
  65. CONST
  66.     kMenuStdMenuProc            = 63;
  67.     kMenuStdMenuBarProc            = 63;
  68.  
  69.     kMenuNoModifiers            = 0;                            {  Mask for no modifiers }
  70.     kMenuShiftModifier            = $01;                            {  Mask for shift key modifier }
  71.     kMenuOptionModifier            = $02;                            {  Mask for option key modifier }
  72.     kMenuControlModifier        = $04;                            {  Mask for control key modifier }
  73.     kMenuNoCommandModifier        = $08;                            {  Mask for no command key modifier }
  74.  
  75.     kMenuNoIcon                    = 0;                            {  No icon }
  76.     kMenuIconType                = 1;                            {  Type for ICON }
  77.     kMenuShrinkIconType            = 2;                            {  Type for ICON plotted 16 x 16 }
  78.     kMenuSmallIconType            = 3;                            {  Type for SICN }
  79.     kMenuColorIconType            = 4;                            {  Type for cicn }
  80.     kMenuIconSuiteType            = 5;                            {  Type for Icon Suite }
  81.     kMenuIconRefType            = 6;                            {  Type for Icon Ref }
  82.  
  83. {  —— end of Appearance 1.0 types }
  84.  
  85.     noMark                        = 0;                            { mark symbol for MarkItem }
  86.  
  87.                                                                 {  menu defProc messages  }
  88.     kMenuDrawMsg                = 0;
  89.     kMenuChooseMsg                = 1;
  90.     kMenuSizeMsg                = 2;
  91.     kMenuDrawItemMsg            = 4;
  92.     kMenuCalcItemMsg            = 5;
  93.     kMenuThemeSavvyMsg            = 7;                            {  is your MDEF theme-savvy?  If so, return hex 7473 in the whichItem parameter }
  94.     mDrawMsg                    = 0;
  95.     mChooseMsg                    = 1;
  96.     mSizeMsg                    = 2;
  97.     mDrawItemMsg                = 4;
  98.     mCalcItemMsg                = 5;
  99.  
  100.     kThemeSavvyMenuResponse        = $7473;
  101.  
  102.     textMenuProc                = 0;
  103.     hMenuCmd                    = 27;                            { itemCmd == 0x001B ==> hierarchical menu }
  104.     hierMenu                    = -1;                            { a hierarchical menu - for InsertMenu call }
  105.     mPopUpMsg                    = 3;                            { menu defProc messages - place yourself }
  106.     mctAllItems                    = -98;                            { search for all Items for the given ID }
  107.     mctLastIDIndic                = -99;                            { last color table entry has this in ID field }
  108.  
  109.  
  110.  
  111. TYPE
  112.     MenuInfoPtr = ^MenuInfo;
  113.     MenuInfo = RECORD
  114.         menuID:                    INTEGER;
  115.         menuWidth:                INTEGER;
  116.         menuHeight:                INTEGER;
  117.         menuProc:                Handle;
  118.         enableFlags:            LONGINT;
  119.         menuData:                Str255;
  120.     END;
  121.  
  122.     MenuPtr                                = ^MenuInfo;
  123.     MenuHandle                            = ^MenuPtr;
  124. {  MenuRef is obsolete.  Use MenuHandle.  }
  125.     MenuRef                                = MenuHandle;
  126.     MCEntryPtr = ^MCEntry;
  127.     MCEntry = RECORD
  128.         mctID:                    INTEGER;                                { menu ID.  ID = 0 is the menu bar }
  129.         mctItem:                INTEGER;                                { menu Item. Item = 0 is a title }
  130.         mctRGB1:                RGBColor;                                { usage depends on ID and Item }
  131.         mctRGB2:                RGBColor;                                { usage depends on ID and Item }
  132.         mctRGB3:                RGBColor;                                { usage depends on ID and Item }
  133.         mctRGB4:                RGBColor;                                { usage depends on ID and Item }
  134.         mctReserved:            INTEGER;                                { reserved for internal use }
  135.     END;
  136.  
  137.     MCTable                                = ARRAY [0..0] OF MCEntry;
  138.     MCTablePtr                            = ^MCTable;
  139.     MCTableHandle                        = ^MCTablePtr;
  140.     MenuCRsrcPtr = ^MenuCRsrc;
  141.     MenuCRsrc = RECORD
  142.         numEntries:                INTEGER;                                { number of entries }
  143.         mcEntryRecs:            MCTable;                                { ARRAY [1..numEntries] of MCEntry }
  144.     END;
  145.  
  146.     MenuCRsrcHandle                        = ^MenuCRsrcPtr;
  147. {$IFC TARGET_OS_WIN32 }
  148. { QuickTime 3.0 }
  149.     MenuAccessKeyRecPtr = ^MenuAccessKeyRec;
  150.     MenuAccessKeyRec = RECORD
  151.         count:                    INTEGER;
  152.         flags:                    LONGINT;
  153.         keys:                    SInt8;
  154.     END;
  155.  
  156.     MenuAccessKeyPtr                    = ^MenuAccessKeyRec;
  157.     MenuAccessKeyHandle                    = ^MenuAccessKeyPtr;
  158. {$ENDC}  {TARGET_OS_WIN32}
  159.  
  160. {$IFC TYPED_FUNCTION_POINTERS}
  161.     MenuDefProcPtr = PROCEDURE(message: INTEGER; theMenu: MenuHandle; VAR menuRect: Rect; hitPt: Point; VAR whichItem: INTEGER);
  162. {$ELSEC}
  163.     MenuDefProcPtr = ProcPtr;
  164. {$ENDC}
  165.  
  166. {$IFC TYPED_FUNCTION_POINTERS}
  167.     MenuBarDefProcPtr = FUNCTION(selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT): LONGINT;
  168. {$ELSEC}
  169.     MenuBarDefProcPtr = ProcPtr;
  170. {$ENDC}
  171.  
  172. {$IFC TYPED_FUNCTION_POINTERS}
  173.     MenuHookProcPtr = PROCEDURE;
  174. {$ELSEC}
  175.     MenuHookProcPtr = ProcPtr;
  176. {$ENDC}
  177.  
  178. {$IFC TYPED_FUNCTION_POINTERS}
  179.     MBarHookProcPtr = FUNCTION(VAR menuRect: Rect): INTEGER;
  180. {$ELSEC}
  181.     MBarHookProcPtr = Register68kProcPtr;
  182. {$ENDC}
  183.  
  184.     MenuDefUPP = UniversalProcPtr;
  185.     MenuBarDefUPP = UniversalProcPtr;
  186.     MenuHookUPP = UniversalProcPtr;
  187.     MBarHookUPP = UniversalProcPtr;
  188.  
  189. CONST
  190.     uppMenuDefProcInfo = $0000FF80;
  191.     uppMenuBarDefProcInfo = $00003AB0;
  192.     uppMenuHookProcInfo = $00000000;
  193.     uppMBarHookProcInfo = $000000CF;
  194.  
  195. FUNCTION NewMenuDefProc(userRoutine: MenuDefProcPtr): MenuDefUPP;
  196.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  197.     INLINE $2E9F;
  198.     {$ENDC}
  199.  
  200. FUNCTION NewMenuBarDefProc(userRoutine: MenuBarDefProcPtr): MenuBarDefUPP;
  201.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  202.     INLINE $2E9F;
  203.     {$ENDC}
  204.  
  205. FUNCTION NewMenuHookProc(userRoutine: MenuHookProcPtr): MenuHookUPP;
  206.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  207.     INLINE $2E9F;
  208.     {$ENDC}
  209.  
  210. FUNCTION NewMBarHookProc(userRoutine: MBarHookProcPtr): MBarHookUPP;
  211.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  212.     INLINE $2E9F;
  213.     {$ENDC}
  214.  
  215. PROCEDURE CallMenuDefProc(message: INTEGER; theMenu: MenuHandle; VAR menuRect: Rect; hitPt: Point; VAR whichItem: INTEGER; userRoutine: MenuDefUPP);
  216.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  217.     INLINE $205F, $4E90;
  218.     {$ENDC}
  219.  
  220. FUNCTION CallMenuBarDefProc(selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT; userRoutine: MenuBarDefUPP): LONGINT;
  221.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  222.     INLINE $205F, $4E90;
  223.     {$ENDC}
  224.  
  225. PROCEDURE CallMenuHookProc(userRoutine: MenuHookUPP);
  226.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  227.     INLINE $205F, $4E90;
  228.     {$ENDC}
  229.  
  230. FUNCTION CallMBarHookProc(VAR menuRect: Rect; userRoutine: MBarHookUPP): INTEGER;
  231.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  232.     {To be implemented:  Glue to move parameters into registers.}
  233.     {$ENDC}
  234.  
  235. FUNCTION GetMBarHeight: INTEGER;
  236.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  237.     INLINE $3EB8, $0BAA;
  238.     {$ENDC}
  239. PROCEDURE InitMenus;
  240.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  241.     INLINE $A930;
  242.     {$ENDC}
  243. FUNCTION NewMenu(menuID: INTEGER; menuTitle: Str255): MenuHandle;
  244.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  245.     INLINE $A931;
  246.     {$ENDC}
  247. FUNCTION GetMenu(resourceID: INTEGER): MenuHandle;
  248.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  249.     INLINE $A9BF;
  250.     {$ENDC}
  251. PROCEDURE DisposeMenu(theMenu: MenuHandle);
  252.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  253.     INLINE $A932;
  254.     {$ENDC}
  255. PROCEDURE AppendMenu(menu: MenuHandle; data: Str255);
  256.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  257.     INLINE $A933;
  258.     {$ENDC}
  259. PROCEDURE InsertResMenu(theMenu: MenuHandle; theType: ResType; afterItem: INTEGER);
  260.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  261.     INLINE $A951;
  262.     {$ENDC}
  263. PROCEDURE InsertMenu(theMenu: MenuHandle; beforeID: INTEGER);
  264.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  265.     INLINE $A935;
  266.     {$ENDC}
  267. PROCEDURE DeleteMenu(menuID: INTEGER);
  268.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  269.     INLINE $A936;
  270.     {$ENDC}
  271. PROCEDURE AppendResMenu(theMenu: MenuHandle; theType: ResType);
  272.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  273.     INLINE $A94D;
  274.     {$ENDC}
  275. PROCEDURE InsertMenuItem(theMenu: MenuHandle; itemString: Str255; afterItem: INTEGER);
  276.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  277.     INLINE $A826;
  278.     {$ENDC}
  279. PROCEDURE DeleteMenuItem(theMenu: MenuHandle; item: INTEGER);
  280.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  281.     INLINE $A952;
  282.     {$ENDC}
  283. FUNCTION MenuKey(ch: CharParameter): LONGINT;
  284.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  285.     INLINE $A93E;
  286.     {$ENDC}
  287. PROCEDURE HiliteMenu(menuID: INTEGER);
  288.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  289.     INLINE $A938;
  290.     {$ENDC}
  291. PROCEDURE SetMenuItemText(theMenu: MenuHandle; item: INTEGER; itemString: Str255);
  292.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  293.     INLINE $A947;
  294.     {$ENDC}
  295. PROCEDURE GetMenuItemText(theMenu: MenuHandle; item: INTEGER; VAR itemString: Str255);
  296.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  297.     INLINE $A946;
  298.     {$ENDC}
  299. PROCEDURE SetItemMark(theMenu: MenuHandle; item: INTEGER; markChar: CharParameter);
  300.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  301.     INLINE $A944;
  302.     {$ENDC}
  303. PROCEDURE GetItemMark(theMenu: MenuHandle; item: INTEGER; VAR markChar: CharParameter);
  304.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  305.     INLINE $A943;
  306.     {$ENDC}
  307. PROCEDURE SetItemCmd(theMenu: MenuHandle; item: INTEGER; cmdChar: CharParameter);
  308.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  309.     INLINE $A84F;
  310.     {$ENDC}
  311. PROCEDURE GetItemCmd(theMenu: MenuHandle; item: INTEGER; VAR cmdChar: CharParameter);
  312.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  313.     INLINE $A84E;
  314.     {$ENDC}
  315. PROCEDURE SetItemIcon(theMenu: MenuHandle; item: INTEGER; iconIndex: INTEGER);
  316.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  317.     INLINE $A940;
  318.     {$ENDC}
  319. PROCEDURE GetItemIcon(theMenu: MenuHandle; item: INTEGER; VAR iconIndex: Byte);
  320.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  321.     INLINE $A93F;
  322.     {$ENDC}
  323. PROCEDURE SetItemStyle(theMenu: MenuHandle; item: INTEGER; chStyle: StyleParameter);
  324.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  325.     INLINE $A942;
  326.     {$ENDC}
  327. PROCEDURE GetItemStyle(theMenu: MenuHandle; item: INTEGER; VAR chStyle: Style);
  328. FUNCTION GetMenuHandle(menuID: INTEGER): MenuHandle;
  329.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  330.     INLINE $A949;
  331.     {$ENDC}
  332. PROCEDURE CalcMenuSize(theMenu: MenuHandle);
  333.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  334.     INLINE $A948;
  335.     {$ENDC}
  336. PROCEDURE DisableItem(theMenu: MenuHandle; item: INTEGER);
  337.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  338.     INLINE $A93A;
  339.     {$ENDC}
  340. PROCEDURE EnableItem(theMenu: MenuHandle; item: INTEGER);
  341.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  342.     INLINE $A939;
  343.     {$ENDC}
  344. PROCEDURE FlashMenuBar(menuID: INTEGER);
  345.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  346.     INLINE $A94C;
  347.     {$ENDC}
  348. FUNCTION PopUpMenuSelect(menu: MenuHandle; top: INTEGER; left: INTEGER; popUpItem: INTEGER): LONGINT;
  349.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  350.     INLINE $A80B;
  351.     {$ENDC}
  352. FUNCTION MenuChoice: LONGINT;
  353.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  354.     INLINE $AA66;
  355.     {$ENDC}
  356. PROCEDURE DeleteMCEntries(menuID: INTEGER; menuItem: INTEGER);
  357.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  358.     INLINE $AA60;
  359.     {$ENDC}
  360. FUNCTION GetMCInfo: MCTableHandle;
  361.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  362.     INLINE $AA61;
  363.     {$ENDC}
  364. PROCEDURE SetMCInfo(menuCTbl: MCTableHandle);
  365.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  366.     INLINE $AA62;
  367.     {$ENDC}
  368. PROCEDURE DisposeMCInfo(menuCTbl: MCTableHandle);
  369.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  370.     INLINE $AA63;
  371.     {$ENDC}
  372. FUNCTION GetMCEntry(menuID: INTEGER; menuItem: INTEGER): MCEntryPtr;
  373.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  374.     INLINE $AA64;
  375.     {$ENDC}
  376. PROCEDURE SetMCEntries(numEntries: INTEGER; menuCEntries: MCTablePtr);
  377.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  378.     INLINE $AA65;
  379.     {$ENDC}
  380. PROCEDURE DrawMenuBar;
  381.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  382.     INLINE $A937;
  383.     {$ENDC}
  384. PROCEDURE InvalMenuBar;
  385.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  386.     INLINE $A81D;
  387.     {$ENDC}
  388. PROCEDURE InitProcMenu(resID: INTEGER);
  389.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  390.     INLINE $A808;
  391.     {$ENDC}
  392. FUNCTION GetMenuBar: Handle;
  393.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  394.     INLINE $A93B;
  395.     {$ENDC}
  396. PROCEDURE SetMenuBar(menuList: Handle);
  397.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  398.     INLINE $A93C;
  399.     {$ENDC}
  400. FUNCTION SystemEdit(editCmd: INTEGER): BOOLEAN;
  401.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  402.     INLINE $A9C2;
  403.     {$ENDC}
  404. PROCEDURE SystemMenu(menuResult: LONGINT);
  405.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  406.     INLINE $A9B5;
  407.     {$ENDC}
  408. FUNCTION GetNewMBar(menuBarID: INTEGER): Handle;
  409.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  410.     INLINE $A9C0;
  411.     {$ENDC}
  412. PROCEDURE ClearMenuBar;
  413.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  414.     INLINE $A934;
  415.     {$ENDC}
  416. PROCEDURE CheckItem(theMenu: MenuHandle; item: INTEGER; checked: BOOLEAN);
  417.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  418.     INLINE $A945;
  419.     {$ENDC}
  420. FUNCTION CountMItems(theMenu: MenuHandle): INTEGER;
  421.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  422.     INLINE $A950;
  423.     {$ENDC}
  424. PROCEDURE SetMenuFlash(count: INTEGER);
  425.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  426.     INLINE $A94A;
  427.     {$ENDC}
  428. FUNCTION MenuSelect(startPt: Point): LONGINT;
  429.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  430.     INLINE $A93D;
  431.     {$ENDC}
  432. PROCEDURE InsertFontResMenu(theMenu: MenuHandle; afterItem: INTEGER; scriptFilter: INTEGER);
  433.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  434.     INLINE $303C, $0400, $A825;
  435.     {$ENDC}
  436. PROCEDURE InsertIntlResMenu(theMenu: MenuHandle; theType: ResType; afterItem: INTEGER; scriptFilter: INTEGER);
  437.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  438.     INLINE $303C, $0601, $A825;
  439.     {$ENDC}
  440.  
  441. {——————————————————————————————————————————————————————————————————————————————————————}
  442. {    • Appearance 1.0 and later Menu Manager routines                                    }
  443. {——————————————————————————————————————————————————————————————————————————————————————}
  444. FUNCTION MenuEvent({CONST}VAR inEvent: EventRecord): UInt32;
  445.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  446.     INLINE $303C, $020C, $A825;
  447.     {$ENDC}
  448. FUNCTION SetMenuItemCommandID(inMenu: MenuHandle; inItem: SInt16; inCommandID: UInt32): OSErr;
  449.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  450.     INLINE $303C, $0502, $A825;
  451.     {$ENDC}
  452. FUNCTION GetMenuItemCommandID(inMenu: MenuHandle; inItem: SInt16; VAR outCommandID: UInt32): OSErr;
  453.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  454.     INLINE $303C, $0503, $A825;
  455.     {$ENDC}
  456. FUNCTION SetMenuItemModifiers(inMenu: MenuHandle; inItem: SInt16; inModifiers: ByteParameter): OSErr;
  457.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  458.     INLINE $303C, $0404, $A825;
  459.     {$ENDC}
  460. FUNCTION GetMenuItemModifiers(inMenu: MenuHandle; inItem: SInt16; VAR outModifiers: UInt8): OSErr;
  461.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  462.     INLINE $303C, $0505, $A825;
  463.     {$ENDC}
  464. FUNCTION SetMenuItemIconHandle(inMenu: MenuHandle; inItem: SInt16; inIconType: ByteParameter; inIconHandle: Handle): OSErr;
  465.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  466.     INLINE $303C, $0606, $A825;
  467.     {$ENDC}
  468. FUNCTION GetMenuItemIconHandle(inMenu: MenuHandle; inItem: SInt16; VAR outIconType: UInt8; VAR outIconHandle: Handle): OSErr;
  469.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  470.     INLINE $303C, $0707, $A825;
  471.     {$ENDC}
  472. FUNCTION SetMenuItemTextEncoding(inMenu: MenuHandle; inItem: SInt16; inScriptID: TextEncoding): OSErr;
  473.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  474.     INLINE $303C, $0408, $A825;
  475.     {$ENDC}
  476. FUNCTION GetMenuItemTextEncoding(inMenu: MenuHandle; inItem: SInt16; VAR outScriptID: TextEncoding): OSErr;
  477.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  478.     INLINE $303C, $0509, $A825;
  479.     {$ENDC}
  480. FUNCTION SetMenuItemHierarchicalID(inMenu: MenuHandle; inItem: SInt16; inHierID: SInt16): OSErr;
  481.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  482.     INLINE $303C, $040D, $A825;
  483.     {$ENDC}
  484. FUNCTION GetMenuItemHierarchicalID(inMenu: MenuHandle; inItem: SInt16; VAR outHierID: SInt16): OSErr;
  485.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  486.     INLINE $303C, $050E, $A825;
  487.     {$ENDC}
  488. FUNCTION SetMenuItemFontID(inMenu: MenuHandle; inItem: SInt16; inFontID: SInt16): OSErr;
  489.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  490.     INLINE $303C, $040F, $A825;
  491.     {$ENDC}
  492. FUNCTION GetMenuItemFontID(inMenu: MenuHandle; inItem: SInt16; VAR outFontID: SInt16): OSErr;
  493.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  494.     INLINE $303C, $0510, $A825;
  495.     {$ENDC}
  496. FUNCTION SetMenuItemRefCon(inMenu: MenuHandle; inItem: SInt16; inRefCon: UInt32): OSErr;
  497.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  498.     INLINE $303C, $050A, $A825;
  499.     {$ENDC}
  500. FUNCTION GetMenuItemRefCon(inMenu: MenuHandle; inItem: SInt16; VAR outRefCon: UInt32): OSErr;
  501.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  502.     INLINE $303C, $050B, $A825;
  503.     {$ENDC}
  504. FUNCTION SetMenuItemRefCon2(inMenu: MenuHandle; inItem: SInt16; inRefCon2: UInt32): OSErr;
  505.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  506.     INLINE $303C, $0511, $A825;
  507.     {$ENDC}
  508. FUNCTION GetMenuItemRefCon2(inMenu: MenuHandle; inItem: SInt16; VAR outRefCon2: UInt32): OSErr;
  509.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  510.     INLINE $303C, $0512, $A825;
  511.     {$ENDC}
  512. FUNCTION SetMenuItemKeyGlyph(inMenu: MenuHandle; inItem: SInt16; inGlyph: SInt16): OSErr;
  513.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  514.     INLINE $303C, $0513, $A825;
  515.     {$ENDC}
  516. FUNCTION GetMenuItemKeyGlyph(inMenu: MenuHandle; inItem: SInt16; VAR outGlyph: SInt16): OSErr;
  517.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  518.     INLINE $303C, $0514, $A825;
  519.     {$ENDC}
  520. {——————————————————————————————————————————————————————————————————————————————————————}
  521. {    • Contextual Menu routines and constants                                            }
  522. {    available with Conxtextual Menu extension 1.0 and later                                }
  523. {——————————————————————————————————————————————————————————————————————————————————————}
  524. { Gestalt Selector for classic 68K apps only. }
  525. { CFM apps should weak link and check the symbols. }
  526.  
  527. CONST
  528.     gestaltContextualMenuAttr    = 'cmnu';
  529.     gestaltContextualMenuUnusedBit = 0;
  530.     gestaltContextualMenuTrapAvailable = 1;
  531.  
  532. { Values indicating what kind of help the application supports }
  533.     kCMHelpItemNoHelp            = 0;
  534.     kCMHelpItemAppleGuide        = 1;
  535.     kCMHelpItemOtherHelp        = 2;
  536.  
  537. { Values indicating what was chosen from the menu }
  538.     kCMNothingSelected            = 0;
  539.     kCMMenuItemSelected            = 1;
  540.     kCMShowHelpSelected            = 3;
  541.  
  542. FUNCTION InitContextualMenus: OSStatus;
  543.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  544.     INLINE $7001, $AA72;
  545.     {$ENDC}
  546. FUNCTION IsShowContextualMenuClick({CONST}VAR inEvent: EventRecord): BOOLEAN;
  547.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  548.     INLINE $7002, $AA72;
  549.     {$ENDC}
  550. FUNCTION ContextualMenuSelect(inMenu: MenuHandle; inGlobalLocation: Point; inReserved: BOOLEAN; inHelpType: UInt32; inHelpItemString: Str255; {CONST}VAR inSelection: AEDesc; VAR outUserSelectionType: UInt32; VAR outMenuID: SInt16; VAR outMenuItem: UInt16): OSStatus;
  551.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  552.     INLINE $7003, $AA72;
  553.     {$ENDC}
  554. FUNCTION ProcessIsContextualMenuClient(VAR inPSN: ProcessSerialNumber): BOOLEAN;
  555.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  556.     INLINE $7004, $AA72;
  557.     {$ENDC}
  558.  
  559.  
  560.  
  561. {$IFC OLDROUTINENAMES }
  562. PROCEDURE AddResMenu(theMenu: MenuHandle; theType: ResType);
  563.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  564.     INLINE $A94D;
  565.     {$ENDC}
  566. PROCEDURE InsMenuItem(theMenu: MenuHandle; itemString: Str255; afterItem: INTEGER);
  567.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  568.     INLINE $A826;
  569.     {$ENDC}
  570. PROCEDURE DelMenuItem(theMenu: MenuHandle; item: INTEGER);
  571.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  572.     INLINE $A952;
  573.     {$ENDC}
  574. PROCEDURE SetItem(theMenu: MenuHandle; item: INTEGER; itemString: Str255);
  575.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  576.     INLINE $A947;
  577.     {$ENDC}
  578. PROCEDURE GetItem(theMenu: MenuHandle; item: INTEGER; VAR itemString: Str255);
  579.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  580.     INLINE $A946;
  581.     {$ENDC}
  582. FUNCTION GetMHandle(menuID: INTEGER): MenuHandle;
  583.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  584.     INLINE $A949;
  585.     {$ENDC}
  586. PROCEDURE DelMCEntries(menuID: INTEGER; menuItem: INTEGER);
  587.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  588.     INLINE $AA60;
  589.     {$ENDC}
  590. PROCEDURE DispMCInfo(menuCTbl: MCTableHandle);
  591.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  592.     INLINE $AA63;
  593.     {$ENDC}
  594. {$ENDC}  {OLDROUTINENAMES}
  595.  
  596.  
  597.  
  598. {$IFC TARGET_OS_WIN32 }
  599. {$ENDC}  {TARGET_OS_WIN32}
  600.  
  601. {$ALIGN RESET}
  602. {$POP}
  603.  
  604. {$SETC UsingIncludes := MenusIncludes}
  605.  
  606. {$ENDC} {__MENUS__}
  607.  
  608. {$IFC NOT UsingIncludes}
  609.  END.
  610. {$ENDC}
  611.